/**
* jQuery EasyUI 1.4.3
* Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
*
* Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
* To use it on other terms please contact us at info@jeasyui.com
* http://www.jeasyui.com/license_commercial.php
*
* jQuery EasyUI textbox 扩展
* jeasyui.extensions.textbox.onDestroy.js
* 开发 流云
* 由 落阳 整理
* 最近更新：2015-11-04
*
* 依赖项：
*   1、jquery.jdirk.js
*   2、jeasyui.extensions.textbox.css
*
* Copyright (c) 2015 ChenJianwei personal All rights reserved.
*/
(function ($) {

    $.util.namespace("$.fn.textbox.extensions");

    var _originalMethod = {};
    $.extend(_originalMethod, {
        destroy: $.fn.textbox.methods.destroy
    });

    function destroy(target) {
        var t = $(target),
            state = $.data(target, "textbox"),
            opts = state.options;
        if (opts.onBeforeDestroy.call(target) == false) {
            return;
        }
        _originalMethod.destroy.call(target, t);
        opts.onDestroy.call(target);
    }

    var defaults = {

        // 扩展 easyui-textbox 的自定义事件；该事件表示在执行 destroy 方法之前进行的操作；
        // 如果该方法返回 false，则表示取消 destroy 方法的执行。
        onBeforeDestroy: function () { },

        // 扩展 easyui-textbox 的自定义事件；
        // 该事件表示在执行 destroy 方法之后进行的操作；
        onDestroy: function () { }
    };

    var methods = {

        // 重写 easyui-textbox 控件的 destroy 方法，以支持相应扩展功能（onBeforeDestroy、onDestroy 事件）。
        destroy: function (jq) { return jq.each(function () { destroy(this); }); }
    };

    var compent = $.fn.textbox;
    if (compent.extensions.defaults) {
        $.extend(compent.extensions.defaults, defaults);
    } else {
        compent.extensions.defaults = defaults;
    }

    if (compent.extensions.methods) {
        $.extend(compent.extensions.methods, methods);
    } else {
        compent.extensions.methods = methods;
    }

    $.extend(compent.defaults, defaults);
    $.extend(compent.methods, methods);

})(jQuery);
/**
* jQuery EasyUI 1.4.3
* Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
*
* Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
* To use it on other terms please contact us at info@jeasyui.com
* http://www.jeasyui.com/license_commercial.php
*
* jQuery EasyUI textbox 扩展
* jeasyui.extensions.textbox.setButtonIcon.js
* 开发 流云
* 由 落阳 整理
* 最近更新：2015-10-30
*
* 依赖项：
*   1、jquery.jdirk.js
*   2、jeasyui.extensions.linkbutton.setIcon.js
*   3、jeasyui.extensions.textbox.css
*
* Copyright (c) 2015 ChenJianwei personal All rights reserved.
*/
(function ($) {

    $.util.namespace("$.fn.textbox.extensions");

    function setButtonIcon(target, buttonIcon) {
        var t = $(target),
            state = $.data(target, "textbox"),
            opts = state.options,
            tb = state.textbox,
            btn = tb.find(".textbox-button");
        opts.buttonIcon = buttonIcon;

        if (btn.length) {
            btn.linkbutton("setIcon", buttonIcon);
        } else {
            $("<a href='javascript:void(0);' class='textbox-button textbox-button-" + opts.buttonAlign + "'></a>").prependTo(tb).linkbutton({
                text: opts.buttonText, iconCls: opts.buttonIcon
            });
            t.textbox("readonly", opts.readonly);
        }
        t.textbox("resize");
    }


    var defaults = {};

    var methods = {

        // 扩展 easyui-textbox 控件的自定义方法；设置 easyui-textbox 控件的 button 按钮图标；
        // 该方法的参数 buttonIcon 表示被设置的按钮图标样式类；
        // 返回值：返回表示当前 easyui-textbox 控件的 jQuery 链式对象。
        setButtonIcon: function (jq, buttonIcon) { return jq.each(function () { setButtonIcon(this, buttonIcon); }); }
    };

    var compent = $.fn.textbox;
    if (compent.extensions.defaults) {
        $.extend(compent.extensions.defaults, defaults);
    } else {
        compent.extensions.defaults = defaults;
    }

    if (compent.extensions.methods) {
        $.extend(compent.extensions.methods, methods);
    } else {
        compent.extensions.methods = methods;
    }

    $.extend(compent.defaults, defaults);
    $.extend(compent.methods, methods);

})(jQuery);
/**
* jQuery EasyUI 1.4.3
* Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
*
* Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
* To use it on other terms please contact us at info@jeasyui.com
* http://www.jeasyui.com/license_commercial.php
*
* jQuery EasyUI textbox 扩展
* jeasyui.extensions.textbox.setButtonText.js
* 开发 流云
* 由 落阳 整理
* 最近更新：2015-11-02
*
* 依赖项：
*   1、jquery.jdirk.js
*   2、jeasyui.extensions.linkbutton.setText.js
*   3、jeasyui.extensions.textbox.css
*
* Copyright (c) 2015 ChenJianwei personal All rights reserved.
*/
(function ($) {

    $.util.namespace("$.fn.textbox.extensions");

    function setButtonText(target, buttonText) {
        var t = $(target),
            state = $.data(target, "textbox"),
            opts = state.options,
            tb = state.textbox,
            btn = tb.find(".textbox-button");
        opts.buttonText = buttonText;

        if (btn.length) {
            btn.linkbutton("setText", buttonText);
        } else {
            $("<a href='javascript:void(0);' class='textbox-button textbox-button-" + opts.buttonAlign + "'></a>").prependTo(tb).linkbutton({
                text: opts.buttonText, iconCls: opts.buttonIcon
            });
            t.textbox("readonly", opts.readonly)
        }
        t.textbox("resize");
    }


    var defaults = {};

    var methods = {

        // 扩展 easyui-textbox 控件的自定义方法；设置 easyui-textbox 控件的 button 按钮文本；
        // 该方法的参数 buttonText 表示被设置的按钮文本内容；
        // 返回值：返回表示当前 easyui-textbox 控件的 jQuery 链式对象。
        setButtonText: function (jq, buttonText) { return jq.each(function () { setButtonText(this, buttonText); }); }
    };

    var compent = $.fn.textbox;
    if (compent.extensions.defaults) {
        $.extend(compent.extensions.defaults, defaults);
    } else {
        compent.extensions.defaults = defaults;
    }

    if (compent.extensions.methods) {
        $.extend(compent.extensions.methods, methods);
    } else {
        compent.extensions.methods = methods;
    }

    $.extend(compent.defaults, defaults);
    $.extend(compent.methods, methods);

})(jQuery);
/**
* jQuery EasyUI 1.4.3
* Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
*
* Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
* To use it on other terms please contact us at info@jeasyui.com
* http://www.jeasyui.com/license_commercial.php
*
* jQuery EasyUI textbox 扩展
* jeasyui.extensions.textbox.setIconCls.js
* 开发 流云
* 由 落阳 整理
* 最近更新：2015-10-30
*
* 依赖项：
*   1、jquery.jdirk.js
*   2、jeasyui.extensions.textbox.css
*
* Copyright (c) 2015 ChenJianwei personal All rights reserved.
*/
(function ($) {

    $.util.namespace("$.fn.textbox.extensions");


    function getAddon(target) {
        var state = $.data(target, "textbox"),
            opts = state.options,
            addon = state.textbox.find(".textbox-addon");
        if (!addon.length) {
            var tb = state.textbox.find(".textbox-text"),
                btn = state.textbox.find(".textbox-button"),
                iconAlign = opts.iconAlign ? opts.iconAlign : opts.iconAlign = $.fn.textbox.defaults.iconAlign;

            addon = $("<span class='textbox-addon textbox-addon- " + iconAlign + "'></span>").insertBefore(tb).css({
                left: (iconAlign == "left" ? (opts.buttonAlign == "left" ? btn._outerWidth() : 0) : ""),
                right: (iconAlign == "right" ? (opts.buttonAlign == "right" ? btn._outerWidth() : 0) : "")
            });
        }
        return addon;
    }

    function setIconCls(target, iconCls) {
        var t = $(target),
            state = $.data(target, "textbox"),
            opts = state.options,
            addon = getAddon(target);
        if (iconCls) {
            if (opts.iconCls) {
                var icon = addon.find(".textbox-icon:last");
                if (icon.length) {
                    var disabled = icon.is(".textbox-icon-disabled");
                    icon.attr("class", "textbox-icon " + iconCls);
                    if (disabled) {
                        icon.addClass("textbox-icon-disabled");
                    }
                } else {
                    createIcon();
                }
            } else {
                createIcon();
            }
            function createIcon() {
                $("<a href='javascript:void(0)' class='textbox-icon " + iconCls + " textbox-icon-disabled' tabindex='-1' style='width: 18px; height: 20px;'></a>").appendTo(addon);
                addon.find(".textbox-icon").each(function (i) {
                    $(this).attr("icon-index", i);
                });
            }
        } else {
            if (opts.iconCls && addon.length) {
                addon.find(".textbox-icon:last").filter("." + opts.iconCls).remove();
            }
            if (addon.length && !addon.children()) {
                addon.remove();
            }
        }
        opts.iconCls = iconCls;
        t.textbox("resize");
    }


    var defaults = {};

    var methods = {

        // 扩展 easyui-textbox 控件的自定义方法；用于设置 easyui-textbox 的显示图标属性 iconCls；
        // 该方法的参数 iconCls 表示被设置的图标的 iconCls 属性，为一个 String 类型值。
        // 返回值：返回表示当前 easyui-textbox 控件的 jQuery 链式对象。
        setIconCls: function (jq, iconCls) { return jq.each(function () { setIconCls(this, iconCls); }); }
    };

    var compent = $.fn.textbox;
    if (compent.extensions.defaults) {
        $.extend(compent.extensions.defaults, defaults);
    } else {
        compent.extensions.defaults = defaults;
    }

    if (compent.extensions.methods) {
        $.extend(compent.extensions.methods, methods);
    } else {
        compent.extensions.methods = methods;
    }

    $.extend(compent.defaults, defaults);
    $.extend(compent.methods, methods);

})(jQuery);
/**
* jQuery EasyUI 1.4.3
* Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
*
* Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
* To use it on other terms please contact us at info@jeasyui.com
* http://www.jeasyui.com/license_commercial.php
*
* jQuery EasyUI textbox 扩展
* jeasyui.extensions.textbox.setPrompt.js
* 开发 流云
* 由 落阳 整理
* 最近更新：2015-11-04
*
* 依赖项：
*   1、jquery.jdirk.js
*   2、jeasyui.extensions.validatebox.js
*   3、jeasyui.extensions.textbox.css
*
* Copyright (c) 2015 ChenJianwei personal All rights reserved.
*/
(function ($) {

    $.util.namespace("$.fn.textbox.extensions");


    function setPrompt(target, prompt) {
        var state = $.data(target, "textbox"),
            opts = state.options,
            tb = state.textbox,
            box = tb.find(".textbox-text");
        opts.prompt = prompt;
        box.validatebox("setPrompt", prompt);
        //此时页面上显示的prompt仍旧是上一次的信息，需要获得焦点后才会更新，为保证用户体验，再此自动获得焦点后在取消焦点
        box.focus().blur();
    }

    var defaults = {};

    var methods = {

        // 扩展 easyui-textbox 控件的自定义方法；设置 easyui-textbox 控件的 prompt 属性；该属性表示表单输入控件在空值状态下的文字提示信息。
        // 该方法的参数 prompt 表示被设置的 prompt 值。
        // 返回值：返回表示当前 easyui-textbox 控件的 jQuery 链式对象。
        setPrompt: function (jq, prompt) { return jq.each(function () { setPrompt(this, prompt); }); }
    };

    var compent = $.fn.textbox;
    if (compent.extensions.defaults) {
        $.extend(compent.extensions.defaults, defaults);
    } else {
        compent.extensions.defaults = defaults;
    }

    if (compent.extensions.methods) {
        $.extend(compent.extensions.methods, methods);
    } else {
        compent.extensions.methods = methods;
    }

    $.extend(compent.defaults, defaults);
    $.extend(compent.methods, methods);

})(jQuery);
/**
* jQuery EasyUI 1.4.3
* Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
*
* Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
* To use it on other terms please contact us at info@jeasyui.com
* http://www.jeasyui.com/license_commercial.php
*
* jQuery EasyUI textbox 扩展
* jeasyui.extensions.textbox.setRequired.js
* 开发 流云
* 由 落阳 整理
* 最近更新：2015-11-04
*
* 依赖项：
*   1、jquery.jdirk.js
*   2、jeasyui.extensions.validatebox.setRequired.js
*   3、jeasyui.extensions.textbox.css
*
* Copyright (c) 2015 ChenJianwei personal All rights reserved.
*/
(function ($) {

    $.util.namespace("$.fn.textbox.extensions");


    function setRequired(target, required) {
        var state = $.data(target, "textbox"),
            opts = state.options,
            tb = state.textbox,
            box = tb.find(".textbox-text");
        opts.required = required;
        box.validatebox("setRequired", required).validatebox("validate");
    }

    var defaults = {};

    var methods = {

        // 扩展 easyui-textbox 控件的自定义方法；设置 easyui-textbox 控件的 required 属性；该属性表示表单输入值是否允许为空。
        // 该方法的参数 required 表示被设置的 required 值。
        // 返回值：返回表示当前 easyui-textbox 控件的 jQuery 链式对象。
        setRequired: function (jq, required) { return jq.each(function () { setRequired(this, required); }); }
    };

    var compent = $.fn.textbox;
    if (compent.extensions.defaults) {
        $.extend(compent.extensions.defaults, defaults);
    } else {
        compent.extensions.defaults = defaults;
    }

    if (compent.extensions.methods) {
        $.extend(compent.extensions.methods, methods);
    } else {
        compent.extensions.methods = methods;
    }

    $.extend(compent.defaults, defaults);
    $.extend(compent.methods, methods);

})(jQuery);